<?php

/**
 * Plugin żądania dotyczący plików
 *
 */
class Rapide_Request_Plugin_Files extends Rapide_Request_Plugin
{
	/**
	 * Konstruuje obiekt pluginu inicjalizując go danymi FILES
	 *
	 */
	public function __construct()
	{
		parent::__construct($_FILES);
	}

	/**
	 * Zwraca obiekt reprezentujący plik o podanej nazwie
	 *
	 * @param string $sFile nazwa pliku
	 * @return Rapide_Request_Plugin_Files_File
	 */
	public function get($sFile)
	{
		if($this->has($sFile))
		{
			return new Rapide_Request_Plugin_Files_File(parent::get($sFile));
		}
		else
		{
			$sError = sprintf('File %s does not exists', $sFile);
			throw new Rapide_Request_Plugin_Files_Exception($sError);
		}
	}

	/**
	 * Sprawdza, czy plik o podanej nazwie został przesłany w żądaniu
	 *
	 * @param string $sParameter
	 * @return bool
	 */
	public function has($sParameter)
	{
		return isset($this->_aGlobal[$sParameter]) && is_uploaded_file($this->_aGlobal[$sParameter]['tmp_name']);
	}
}

?>